//随机生成数组的函数
function creatArray(length){
    let array = new Array(length)
    for(let i = 0, len = length; i < len; i++){
        array[i] = Math.floor(Math.random()*length)
    }
    return array
}
let myArray = creatArray(10000)

/* 选择排序
* 选择排序从数组的开头开始，将第一个元素和其他元素进行比较。检查完所有元素后，最小的元素会被放到数组的第一个位置，然后算法会从第二个位置继续。
* 这个过程一直进行，当进行到数组的倒数第二个位置时，所有的数据便排序完成了。
*
* */

function selectSort(arr){
    let minIndex //创建一个保存最小值下标的变量，每次遍历到的最小值的下标赋值给它
    for(let i = 0; i < arr.length; i++){
        minIndex = i //默认为当前下标的值为最小
        for(let j = i + 1; j < arr.length; j++){
            if(arr[minIndex] > arr[j]){ //如果新遍历到的值比刚刚的默认值小，新的值的下标成为最小值下标
                minIndex = j
            }
        }
        [arr[i],arr[minIndex]] = [arr[minIndex],arr[i]] //每次循环完之后，交换
    }
}
console.log(myArray)
console.time(`选择排序的时间`)
selectSort(myArray)
console.timeEnd(`选择排序的时间`)
console.log(myArray)